#ifndef __DATA_COMPATIBLE_H__
#define __DATA_COMPATIBLE_H__

#include <tasks_manager/base_define.h>

#include "../file_manager/file_manager.h"
#include "../database/sqlite_operate.h"
using namespace std;

class DataCompatible{
    public:
        DataCompatible();
        ~DataCompatible();
        // 获取所有任务数据
        vector<TaskSingle> AllTaskData();
        // 获取所有定时任务数据
        vector<TimerTask> AllTimerTaskData();
        // 获取所有定时任务数据
        vector<TimerTask> AllElevatorTimerTaskData();
        // 消息转换 std::string -> Json::Value
        Json::Value String2JsonValue(string str_data);
        // 获取所有任务记录数据
        vector<TaskRecord> AllTaskRecordData();

        // 获取数据库路径
        inline string GetTaskDB(){
            return __task_db;
        }
        inline string GetElevatorTimerTaskDB(){
            return __elevator_timertask_db;
        }
        inline string GetTaskRecordDB(){
            return __task_record_db;
        }
    

    private:
        string __task_db;
        string __task_record_db;
        string __elevator_timertask_db;

        boost::shared_ptr<SqliteBridge> __task_db_ptr;  
        boost::shared_ptr<SqliteBridge> __task_record_ptr; 
        boost::shared_ptr<SqliteBridge> __elevator_timertask_ptr;
};

#endif



// CREATE TABLE task_manager (
//     id TEXT PRIMARY KEY NOT NULL,
//     task_name TEXT NOT NULL,
//     descript TEXT,
//     map_name TEXT NOT NULL,
//     map_SubID TEXT,
//     state TEXT,
//     type TEXT,
//     clean_mode TEXT,
//     device_mode TEXT,
//     global_area TEXT,
//     priority TEXT,
//     estimated_time_cost TEXT,
//     global_spd TEXT,
//     executed TEXT,
//     time_elapsed TEXT,
//     theoretic_cov_rate TEXT,
//     area_mask TEXT,
//     cleaned_mask TEXT,
//     subtask TEXT,
//     path_start TEXT,
//     clean_mode_name TEXT
// )


// CREATE TABLE timertask_manager (
//     uuid TEXT PRIMARY KEY NOT NULL,
//     timertask_name TEXT NOT NULL,
//     task_names TEXT NOT NULL,
//     task_ids TEXT NOT NULL,
//     map_name TEXT NOT NULL,
//     Monday TEXT NOT NULL,
//     Tuesday TEXT NOT NULL,
//     Wednesday TEXT NOT NULL,
//     Thursday TEXT NOT NULL,
//     Friday TEXT NOT NULL,
//     Saturday TEXT NOT NULL,
//     Sunday TEXT NOT NULL,
//     exec_time TEXT NOT NULL,
//     enable TEXT NOT NULL,
//     create_date DATETIME NOT NULL
// )

// CREATE TABLE elevator_timertask (
//     uuid TEXT PRIMARY KEY NOT NULL,
//     timertask_name TEXT NOT NULL,
//     task_names TEXT NOT NULL,
//     task_ids TEXT NOT NULL,
//     map_names TEXT NOT NULL,
//     Monday TEXT NOT NULL,
//     Tuesday TEXT NOT NULL,
//     Wednesday TEXT NOT NULL,
//     Thursday TEXT NOT NULL,
//     Friday TEXT NOT NULL,
//     Saturday TEXT NOT NULL,
//     Sunday TEXT NOT NULL,
//     exec_time TEXT NOT NULL,
//     enable TEXT NOT NULL,
//     create_date DATETIME NOT NULL
// )


